高赞回答
1
这也是个困扰了我多年的问题:
loss = a * loss1 + b * loss2 + c * loss3 怎么设置 a,b,c?
我的经验是 loss 的尺度一般不太影响性能,除非本来主 loss 是
loss1,但是因为 b,c 设置太大了导致其他 loss 变成了主
loss。
实践上有几个调整方法:
手动把所有 loss 放缩到差不多的尺度,设 a = 1,b 和 c 取 10^k,k
选完不管了;
如果有两项 loss,可以 loss = a * loss1 + (1 - a) *
loss2,通过控制一个超参数
a 调整 loss;
我试过的玄学躺平做法 loss = loss1 / loss1.detach()
+ loss2 / loss2.detach() + loss3 loss3.detach(),分母可能需要加
eps,一般效果不差(相当于在每一个 iteration 选定超参数 a, b, c,使得多个
loss 尺度完全一致);进一步 loss = loss1 + loss2 / (loss2 /
loss1).detach() + ...
每日一言
Loading...
标签
- Cross-phenological-region
- English
- Foo
- GIS
- Image Processing
- LLM
- Mac Macos
- Ros机器人
- Self-Supervise
- Self-supervised learning
- Sequence Processing
- TypeScript
- classification
- cloud removal
- cloud_removal
- code
- crop classification
- debug
- diffusion
- docker
- git
- javascript
- k8s,Kubernetes
- markdown, md
- remote sensing
- vscode
- vscode插件开发
- 云操作系统
- 入学材料
- 图像处理
- 大模型
- 强化学习
- 数据库
- 早期分类
- 时间序列分类
- 机器学习
- 监督微调
- 研究生周报
- 群等不变性
- 自监督
- 表征学习
- 资料